import { RouterMount, createRouter } from 'uni-simple-router'
import _ from 'lodash'
import * as util from '@/common/util'

const router = createRouter({
  platform: process.env.VUE_APP_PLATFORM,
  routes: [...ROUTES],
})

let shouldAccessControlPathList = []

/*
* https://hhyang.cn/v2/start/applets/explian.html
* v2.0.0 之前 onLaunch 中可以返回一个 promise 来保证 onLaunch 和 index 页面下 onLoad 生命周期的执行顺序。v2.0.0 起不再支持这样的写法，你可以按下面的写法一样能实现同样的效果。
* 小程序系列无法拦截原生tabbar及原生导航返回，如需拦截请自定义tabbar、header
* */
let sleep = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log(`1`, 1)
      resolve(1)
    }, 5000)
  })
}

// 全局路由前置守卫
// 通过顶部菜单栏控制的跳转(返回键)在此处拦截失败
router.beforeEach(async (to, from, next) => {
  console.log(`跳转开始`, to.path)

  // await sleep()
  // await util.getGlobalData('appInfoPromise')

  if (_.includes(shouldAccessControlPathList, to.path)) { // 需要控制权限
    let isLogin = true
    if (isLogin) {
      next()
    } else {
      next('/pages2/user/index')
    }
  } else {
    next()
  }

})
// 全局路由后置守卫
router.afterEach((to, from) => {
  console.log('跳转结束', to.path)
})

export {
  router,
  RouterMount,
}
